package com.vtuzx.kingdee.xqc_core.service;

import com.vtuzx.core.VtuzxException;
import com.vtuzx.core.bean.dto.VtuzxMap;
import org.bson.Document;
import org.bson.types.ObjectId;

import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;

public interface IVtuzxBasicService {

    /**
     * 同步金蝶物料
     */
    void syncMaterial() throws Exception;

    /**
     * 同步金蝶供应商
     */
    void syncSupplier() throws Exception;

    /**
     * 同步金蝶仓库
     */
    void syncStock() throws Exception;

    /**
     * 同步金蝶仓库
     */
    void syncBom() throws Exception;

    /**
     * 同步金蝶采购订单
     */
    void syncPurOrder() throws Exception;

    /**
     * 同步吉克云客户到金蝶
     */
    void syncCustomer(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步吉克云调拨单
     */
    void syncAllocation(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步吉克云销售单
     */
    void syncSaleBill(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步极客云收款单并传到金蝶
     */
    void syncCollection(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步吉克云付款单并传到金蝶收款退款单
     */
    void syncPayment(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步吉克云公司间结算单(调拨类型)
     */
    void syncInnerOrder(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步吉克云公司间结算单(销售类型)
     */
    void syncInnerOrderSale(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步极客云出库单(其它出库)
     */
    void getStorageOut(Date from, Date to, int pageIndex) throws Exception;


    /**
     * 同步中台唯一码到极客云
     */
    void syncSerial() throws Exception;

    /**
     * 同步销售单(单据状态以完成)
     * @throws Exception
     */
    void syncSaleFinish(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 同步吉客云销售渠道
     * @param from
     * @param to
     * @param
     */
    void syncChannel(Date from, Date to, int pageIndex)throws Exception;

    /**
     * 同步吉客云价目表
     * @param pageIndex
     * @throws Exception
     */
    void syncPriceList( int pageIndex,ObjectId userId,String name) throws Exception;

    /**
     * 同步寄存被拆分的单据(单据状态为已取消被拆分)
     * @param from
     * @param to
     * @param
     */
    void syncSaleBillDeposit(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 月底同步即时库存
     * @param from
     * @param to
     * @param i
     */
    void syncInventory(Date from, Date to, int i) throws Exception;

    void getStorageOutAndStockIn(Date from, Date to, int pageIndex) throws Exception;

    //创建吉客云入库申请单
    void syncCreateStockIn(List<Document> storageList, Document storeDoc) throws Exception;

    /**
     * 同步吉客云存货仓库
     * @param from
     * @param to
     * @param
     */
    void syncWarehouse(Date from, Date to, int pageIndex)throws Exception;

    /**
     * 同步组合装信息
     * @param from
     * @param to
     * @param
     */
    void syncGoodsPackage(Date from, Date to, int pageIndex)throws Exception;

    /**
     * 同步入库信息
     * @param from
     * @param to
     * @param
     */
    void syncStorageGoodsdocin(Date from, Date to, int pageIndex)throws Exception;

    /**
     * 获取吉克云待同步调拨单
     * @throws Exception
     */
    void syncAllocationTask(Date from, Date to, int pageIndex) throws Exception;

    /**
     * 获取吉克云待同步销售单
     * @throws Exception
     */
    void syncSaleTask(Date from, Date to, int pageIndex) throws Exception;
}
